home *** CD-ROM | disk | FTP | other *** search
/ Aminet 43 / Aminet 43 (2001)(GTI - Schatztruhe)[!][Jun 2001].iso / Aminet / game / patch / WHD_ZeewolfII.lha / WHD_ZeewolfII / Install < prev    next >
Text File  |  2001-04-28  |  8KB  |  323 lines

  1. ;================================================================================
  2. ; CONFIGURATION SECTION
  3.  
  4. (set #CFG_APPNAME "Zeewolf II")
  5. (set #CFG_APPSLV  "Z2HD")
  6. (set #CFG_APPGUI  "Zeewolf II")
  7. (set #CFG_APPVER  "R0401.2")
  8. (set #CFG_APPCOPY "1996-2001")
  9.  
  10. ;================================================================================
  11.  
  12. ;------------------------------------------------------------------------------------
  13. ; Checks if given program is reachable via the path, if not abort install
  14. ;
  15. ; Entry:    #VP1 = name of program to search for
  16.  
  17. (procedure P_CheckRun (
  18.     (if (<> 0 (run (cat "Which " #VP1)))(
  19.         (abort
  20.             (cat
  21.                 "Could not find the program\n\n"
  22.                 "'" #VP1 "'\n\n"
  23.                 "which is required to perform the installation!\n\n"
  24.                 "Please install the '" #VP1 "' program ensuring that"
  25.                 " it is accessible on the path, then try the installation again."
  26.             )
  27.         )
  28.     ))
  29. ))
  30.  
  31.  
  32. ;------------------------------------------------------------------------------------
  33. ; Create installation directories if required
  34.  
  35. (procedure P_InstallDirs (
  36.     ;
  37.     ; Create data dir if required
  38.     ;
  39.     (if (<> 2 (exists #VDATDIR))(
  40.         (makedir #VDATDIR
  41.             (prompt "The directory '" #VDATDIR "' will now be created")
  42.             (help @makedir-help)
  43.             (confirm)
  44.         )
  45.     ))
  46. ))
  47.  
  48.  
  49. ;------------------------------------------------------------------------------------
  50. ; Determine and set information about version of game being installed
  51. ;
  52.  
  53. (procedure P_SetVersionInfo (
  54.     ; if the file exists, set version information
  55.     (if (<= #VVERINFA 0)(
  56.         (if (= 1 (exists #VDATFILE))(
  57.             ; determine version from CRC
  58.             (working "Determining game version")
  59.  
  60.             (set #VT1 (run (cat "CRC16 \"" #VDATFILE "\" OFFSET=0 LENGTH=5632")))
  61.             (set #VVERINFA 0)
  62.             (if (= #VT1 24632) (set #VVERINFA 1))
  63.  
  64.             (set #VT1 (run (cat "CRC16 \"" #VDATFILE "\" OFFSET=192512 LENGTH=5632")))
  65.             (if (<> #VT1 64589) (set #VVERINFA 0))
  66.  
  67.             (set #VT1 (run (cat "CRC16 \"" #VDATFILE "\" OFFSET=889856 LENGTH=11264")))
  68.             (if (<> #VT1 21357) (set #VVERINFA 0))
  69.         ))
  70.     ))
  71. ))
  72.  
  73.  
  74. ;------------------------------------------------------------------------------------
  75. ; Make game data
  76.  
  77. (procedure P_InstallGame (
  78.     ;
  79.     ; Set path to game data file
  80.     ;
  81.     (set #VDATFILE (tackon #VDATDIR "Disk.1"))
  82.  
  83.     ;
  84.     ; Install data files if not found or unknown versions
  85.     ;
  86.     (P_SetVersionInfo)
  87.     (if (<= #VVERINFA 0)(
  88.         ;
  89.         ; Tell user what is happening
  90.         ;
  91.         (message
  92.             (cat
  93.                 "\n\n\nThe installer will now create the game data files\n"
  94.                 "Follow the prompts to insert the game disks when required\n\n"
  95.                 "Click 'Proceed' when ready."
  96.             )
  97.         )
  98.  
  99.         ;
  100.         ; Call the imager slave
  101.         ;
  102.         (working "Creating data files in '" #VDATDIR "'")
  103.  
  104.         (copyfiles
  105.             (prompt "Copying disk image creation slave")
  106.             (help @copyfiles-help)
  107.             (source "ISlave")
  108.             (dest #VDATDIR)
  109.             (nogauge)
  110.             (optional fail force)
  111.         )
  112.  
  113.         (set @execute-dir #VDATDIR)
  114.         (run (cat "RawDIC SLAVE=ISlave"))
  115.         (set @execute-dir #VOLDEXEDIR)
  116.  
  117.         (delete (tackon #VDATDIR "ISlave") (optional force))
  118.     ))
  119.  
  120.     ;
  121.     ; Check the main data file was created and
  122.     ; that we know this version of the game
  123.     ;
  124.     (P_SetVersionInfo)
  125.  
  126.     (if (= 0 #VVERINFA)
  127.         (abort
  128.             (cat    "\n*** UNKNOWN VERSION OF GAME! ***\n\n"
  129.                     "The installer does not recognise the version of the\n"
  130.                     "game that you are trying to install.\n\n"
  131.                     "Please contact the author for further information\n"
  132.             )
  133.         )
  134.     )
  135.  
  136.     (if (= -1 #VVERINFA)
  137.         (abort
  138.             (cat    "\n*** DATA FILES NOT CREATED! ***\n\n"
  139.                     "The installer could not extract the game data files.\n\n"
  140.                     "Please contact the author for further information\n"
  141.             )
  142.         )
  143.     )
  144. ))
  145.  
  146. ;------------------------------------------------------------------------------------
  147. ; Install WHDLoad slave program
  148.  
  149. (procedure P_InstallSlave (
  150.  
  151.     (working "Installing slave program")
  152.  
  153.     ; first, clean up previous installations
  154.     (set #VT1 (tackon #VDESTDIR "Zeewolf_2_HD"))
  155.     (if (= 1 (exists #VT1)) (delete #VT1 (optional force)) )
  156.  
  157.     (set #VT1 (tackon #VDESTDIR "Zeewolf_2_HD.info"))
  158.     (set #VT2 (tackon #VDESTDIR "Zeewolf II.info"))
  159.     (if (= 1 (exists #VT2))
  160.         (if (= 1 (exists #VT1)) (delete #VT1 (optional nofail force)) )
  161.         (if (= 1 (exists #VT1)) (rename #VT1 #VT2) )
  162.     )
  163.  
  164.     (set #VT1 (tackon #VDESTDIR "ReadMe_1st"))
  165.     (if (= 1 (exists #VT1)) (delete #VT1 (optional force)) )
  166.  
  167.     (set #VT1 (tackon #VDESTDIR "ReadMe_1st.info"))
  168.     (if (= 1 (exists #VT1)) (delete #VT1 (optional force)) )
  169.  
  170.     ; copy slave program
  171.     (set #VT1 "Slave")
  172.     (if (>= #VVERINFA 0) (set #VT1 (cat #VT1 #VVERINFA)) )
  173.     (if (>= #VVERINFB 0) (set #VT1 (cat #VT1 #VVERINFB)) )
  174.     (if (>= #VVERINFC 0) (set #VT1 (cat #VT1 #VVERINFC)) )
  175.  
  176.     (copyfiles
  177.         (prompt "Copying slave program")
  178.         (help @copyfiles-help)
  179.         (source #VT1)
  180.         (newname #CFG_APPSLV)
  181.         (dest #VDESTDIR)
  182.         (nogauge)
  183.         (optional fail force)
  184.     )
  185.  
  186.     ; see if the user wants to replace their icon
  187.     (set #VT1 (cat #CFG_APPGUI ".info"))
  188.     (if (= 0 (exists (tackon #VDESTDIR #VT1)))(
  189.         ; no icon exists, quietly copy one in
  190.         (set #VT2 1)
  191.     )(
  192.         ; icon exists, ask user if they want to overwrite it
  193.         (set #VT2
  194.             (askbool
  195.                 (prompt (cat "Do you want to replace the \"" #CFG_APPGUI "\" program icon (recommended) ?"))
  196.                 (default 1)
  197.                 (help @askchoice-help)
  198.             )
  199.         )
  200.     ))
  201.  
  202.     ; do we have a slave icon?
  203.     (if (= 1 (exists "Slave.inf"))(
  204.         ; copy slave icon, renaming to proper name along the way
  205.         (if (= 1 #VT2)(
  206.             (copyfiles
  207.                 (prompt "Copying slave program icon")
  208.                 (help @copyfiles-help)
  209.                 (source "Slave.inf")
  210.                 (newname #VT1)
  211.                 (dest #VDESTDIR)
  212.                 (nogauge)
  213.                 (optional nofail force)
  214.             )
  215.         ))
  216.     )(
  217.         ; no slave icon so we must have a GUI to install
  218.         (copyfiles
  219.             (prompt "Copying GUI program")
  220.             (help @copyfiles-help)
  221.             (source  "GUI")
  222.             (newname #CFG_APPGUI)
  223.             (dest #VDESTDIR)
  224.             (nogauge)
  225.             (optional fail force)
  226.         )
  227.  
  228.         (if (= 1 #VT2)(
  229.             (copyfiles
  230.                 (prompt "Copying GUI program icon")
  231.                 (help @copyfiles-help)
  232.                 (source  "GUI.inf")
  233.                 (newname #VT1)
  234.                 (dest #VDESTDIR)
  235.                 (nogauge)
  236.                 (optional nofail force)
  237.             )
  238.         ))
  239.     ))
  240.  
  241. ))
  242.  
  243. ;------------------------------------------------------------------------------------
  244. (welcome (cat "Welcome to the " #CFG_APPNAME " HD Installer"))
  245.  
  246. ;
  247. ; Initialise
  248. ;
  249. (set @app-name #CFG_APPNAME)
  250. (set #VOLDEXEDIR @execute-dir)
  251. (set #VVERINFA -1)
  252. (set #VVERINFB -1)
  253. (set #VVERINFC -1)
  254. (set #VDESTDIR @default-dest)
  255.  
  256. ;
  257. ; Check settings
  258. ;
  259. (if    (<> @user-level 2)
  260.     (abort "You must select 'Expert' user level")
  261. )
  262.  
  263. (if    (< @installer-version 2818051)
  264.     (abort "This product requires at least version 43.3 of the Installer program")
  265. )
  266.  
  267. ;
  268. ; Check required programs are available
  269. ;
  270. (set #VP1 "CRC16")
  271. (P_CheckRun)
  272. (set #VP1 "RawDIC")
  273. (P_CheckRun)
  274. (set #VP1 "WHDLoad")
  275. (P_CheckRun)
  276.  
  277. ;
  278. ; Welcome message
  279. ;
  280. (message "\n\nWelcome to the " #CFG_APPNAME " HD Installer"
  281.          "\n© " #CFG_APPCOPY " John Girvin/Halibut Software\n\n"
  282.          "Please read the documentation thoroughly "
  283.          "before attempting to use this installer!\n\n"
  284.          "This is release " #CFG_APPVER "\n\n"
  285.          "Click 'Proceed' to begin..."
  286. )
  287.  
  288. ;
  289. ; Get directory to install in
  290. ;
  291. (set #VDESTDIR
  292.     (askdir
  293.         (prompt "Where would you like the game installed?\n"
  294.                 "If you have an existing installation select that directory,\n"
  295.                 "otherwise create / select the directory to install the game into."
  296.         )
  297.         (help @askdir-help)
  298.         (default @default-dest)
  299.         (disk)
  300.         (newpath)
  301.     )
  302. )
  303. (set #VDESTDIR (expandpath #VDESTDIR))
  304. (set @default-dest #VDESTDIR)
  305. (set #VDATDIR  (tackon #VDESTDIR "data/"))
  306.  
  307. ;
  308. ; Create the installation directories
  309. ;
  310. (P_InstallDirs)
  311.  
  312. ;
  313. ; Install the game data
  314. ;
  315. (P_InstallGame)
  316.  
  317. ;
  318. ; Install the slave
  319. ;
  320. (P_InstallSlave)
  321.  
  322. ;================================================================================
  323. ;$VER: Zeewolf Installer script R0401.2 © 1996-2001 John Girvin/Halibut Software